package com.runvp.service.biz.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.runvp.common.annotation.Excel;
import com.runvp.common.annotation.NotBlank;
import com.runvp.common.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 设备对象 biz_device
 *
 * @author runvp
 * @date 2022-12-22
 */
@ToString
@Getter
@Setter
public class BizDevice extends BaseEntity {

    private static final long serialVersionUID = -5892876324526480234L;
    /** ID */
    private Long id;

    /** 租户标识 */
    @Excel(name = "租户标识")
    private Long tenantId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 商户ID */
    @Excel(name = "商户ID")
    private Long merchId;

    /** 预留 */
    @Excel(name = "预留")
    private String reserve;

    /** 设备类型 */
    @Excel(name = "设备类型")
    private String deviceType;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String name;

    /** 设备号 */
    @NotBlank(message = "设备号",maxLen = 100)
    @Excel(name = "设备号")
    private String deviceCode;

    /** 设备二维码 */
    @Excel(name = "设备二维码")
    private String qrCode;

    /** 固件版本 */
    @Excel(name = "固件版本")
    private String firmwareVersion;

    /** 最近一次订单号 */
    @Excel(name = "最近一次订单号")
    private String lastOrderNo;

    /** 物联网卡号 */
    @Excel(name = "物联网卡号")
    private String iotCardNumber;

    /** 维度 */
    @Excel(name = "维度")
    private String lat;

    /** 经度 */
    @Excel(name = "经度")
    private String lon;

    /** 设备场地 */
    @Excel(name = "设备场地")
    private String position;

    /** 信号强度0-100 */
    @Excel(name = "信号强度0-100")
    private String signalIntensity;

    /** 折扣 */
    @Excel(name = "折扣")
    private BigDecimal discount;

    /** 门锁状态 */
    @Excel(name = "门锁状态")
    private String doorLockStatus;

    /** 最新补货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最新补货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lastReplenishmentTime;

    /** 最新上送数据时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最新上送数据时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lastUpdateTime;

    /** 客服电话 */
    @Excel(name = "客服电话")
    private String customerServicePhone;

    /** 最大端口数 */
    @Excel(name = "最大端口数")
    private Integer maxCargoLane;

    /** 到期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "到期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date dueDtime;

    /** 续费状态 */
    @Excel(name = "续费状态")
    private String renewStatus;

    /** 安装状态 */
    @Excel(name = "安装状态")
    private String stockStatus;

    /** 在线状态 */
    @Excel(name = "在线状态")
    private String lineStatus;

    /** 启用状态 */
    @Excel(name = "启用状态")
    private String status;

}
